webpackJsonp([2],[
/* 0 */,
/* 1 */,
/* 2 */,
/* 3 */,
/* 4 */,
/* 5 */
/***/ function(module, exports) {

	/*
		MIT License http://www.opensource.org/licenses/mit-license.php
		Author Tobias Koppers @sokra
	*/
	// css base code, injected by the css-loader
	module.exports = function() {
		var list = [];

		// return the list of modules as css string
		list.toString = function toString() {
			var result = [];
			for(var i = 0; i < this.length; i++) {
				var item = this[i];
				if(item[2]) {
					result.push("@media " + item[2] + "{" + item[1] + "}");
				} else {
					result.push(item[1]);
				}
			}
			return result.join("");
		};

		// import a list of modules into the list
		list.i = function(modules, mediaQuery) {
			if(typeof modules === "string")
				modules = [[null, modules, ""]];
			var alreadyImportedModules = {};
			for(var i = 0; i < this.length; i++) {
				var id = this[i][0];
				if(typeof id === "number")
					alreadyImportedModules[id] = true;
			}
			for(i = 0; i < modules.length; i++) {
				var item = modules[i];
				// skip already imported module
				// this implementation is not 100% perfect for weird media query combinations
				//  when a module is imported multiple times with different media queries.
				//  I hope this will never occur (Hey this way we have smaller bundles)
				if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
					if(mediaQuery && !item[2]) {
						item[2] = mediaQuery;
					} else if(mediaQuery) {
						item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
					}
					list.push(item);
				}
			}
		};
		return list;
	};


/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {

	/*
		MIT License http://www.opensource.org/licenses/mit-license.php
		Author Tobias Koppers @sokra
	*/
	var stylesInDom = {},
		memoize = function(fn) {
			var memo;
			return function () {
				if (typeof memo === "undefined") memo = fn.apply(this, arguments);
				return memo;
			};
		},
		isOldIE = memoize(function() {
			return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase());
		}),
		getHeadElement = memoize(function () {
			return document.head || document.getElementsByTagName("head")[0];
		}),
		singletonElement = null,
		singletonCounter = 0,
		styleElementsInsertedAtTop = [];

	module.exports = function(list, options) {
		if(false) {
			if(typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
		}

		options = options || {};
		// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
		// tags it will allow on a page
		if (typeof options.singleton === "undefined") options.singleton = isOldIE();

		// By default, add <style> tags to the bottom of <head>.
		if (typeof options.insertAt === "undefined") options.insertAt = "bottom";

		var styles = listToStyles(list);
		addStylesToDom(styles, options);

		return function update(newList) {
			var mayRemove = [];
			for(var i = 0; i < styles.length; i++) {
				var item = styles[i];
				var domStyle = stylesInDom[item.id];
				domStyle.refs--;
				mayRemove.push(domStyle);
			}
			if(newList) {
				var newStyles = listToStyles(newList);
				addStylesToDom(newStyles, options);
			}
			for(var i = 0; i < mayRemove.length; i++) {
				var domStyle = mayRemove[i];
				if(domStyle.refs === 0) {
					for(var j = 0; j < domStyle.parts.length; j++)
						domStyle.parts[j]();
					delete stylesInDom[domStyle.id];
				}
			}
		};
	}

	function addStylesToDom(styles, options) {
		for(var i = 0; i < styles.length; i++) {
			var item = styles[i];
			var domStyle = stylesInDom[item.id];
			if(domStyle) {
				domStyle.refs++;
				for(var j = 0; j < domStyle.parts.length; j++) {
					domStyle.parts[j](item.parts[j]);
				}
				for(; j < item.parts.length; j++) {
					domStyle.parts.push(addStyle(item.parts[j], options));
				}
			} else {
				var parts = [];
				for(var j = 0; j < item.parts.length; j++) {
					parts.push(addStyle(item.parts[j], options));
				}
				stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
			}
		}
	}

	function listToStyles(list) {
		var styles = [];
		var newStyles = {};
		for(var i = 0; i < list.length; i++) {
			var item = list[i];
			var id = item[0];
			var css = item[1];
			var media = item[2];
			var sourceMap = item[3];
			var part = {css: css, media: media, sourceMap: sourceMap};
			if(!newStyles[id])
				styles.push(newStyles[id] = {id: id, parts: [part]});
			else
				newStyles[id].parts.push(part);
		}
		return styles;
	}

	function insertStyleElement(options, styleElement) {
		var head = getHeadElement();
		var lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];
		if (options.insertAt === "top") {
			if(!lastStyleElementInsertedAtTop) {
				head.insertBefore(styleElement, head.firstChild);
			} else if(lastStyleElementInsertedAtTop.nextSibling) {
				head.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);
			} else {
				head.appendChild(styleElement);
			}
			styleElementsInsertedAtTop.push(styleElement);
		} else if (options.insertAt === "bottom") {
			head.appendChild(styleElement);
		} else {
			throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
		}
	}

	function removeStyleElement(styleElement) {
		styleElement.parentNode.removeChild(styleElement);
		var idx = styleElementsInsertedAtTop.indexOf(styleElement);
		if(idx >= 0) {
			styleElementsInsertedAtTop.splice(idx, 1);
		}
	}

	function createStyleElement(options) {
		var styleElement = document.createElement("style");
		styleElement.type = "text/css";
		insertStyleElement(options, styleElement);
		return styleElement;
	}

	function createLinkElement(options) {
		var linkElement = document.createElement("link");
		linkElement.rel = "stylesheet";
		insertStyleElement(options, linkElement);
		return linkElement;
	}

	function addStyle(obj, options) {
		var styleElement, update, remove;

		if (options.singleton) {
			var styleIndex = singletonCounter++;
			styleElement = singletonElement || (singletonElement = createStyleElement(options));
			update = applyToSingletonTag.bind(null, styleElement, styleIndex, false);
			remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);
		} else if(obj.sourceMap &&
			typeof URL === "function" &&
			typeof URL.createObjectURL === "function" &&
			typeof URL.revokeObjectURL === "function" &&
			typeof Blob === "function" &&
			typeof btoa === "function") {
			styleElement = createLinkElement(options);
			update = updateLink.bind(null, styleElement);
			remove = function() {
				removeStyleElement(styleElement);
				if(styleElement.href)
					URL.revokeObjectURL(styleElement.href);
			};
		} else {
			styleElement = createStyleElement(options);
			update = applyToTag.bind(null, styleElement);
			remove = function() {
				removeStyleElement(styleElement);
			};
		}

		update(obj);

		return function updateStyle(newObj) {
			if(newObj) {
				if(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)
					return;
				update(obj = newObj);
			} else {
				remove();
			}
		};
	}

	var replaceText = (function () {
		var textStore = [];

		return function (index, replacement) {
			textStore[index] = replacement;
			return textStore.filter(Boolean).join('\n');
		};
	})();

	function applyToSingletonTag(styleElement, index, remove, obj) {
		var css = remove ? "" : obj.css;

		if (styleElement.styleSheet) {
			styleElement.styleSheet.cssText = replaceText(index, css);
		} else {
			var cssNode = document.createTextNode(css);
			var childNodes = styleElement.childNodes;
			if (childNodes[index]) styleElement.removeChild(childNodes[index]);
			if (childNodes.length) {
				styleElement.insertBefore(cssNode, childNodes[index]);
			} else {
				styleElement.appendChild(cssNode);
			}
		}
	}

	function applyToTag(styleElement, obj) {
		var css = obj.css;
		var media = obj.media;

		if(media) {
			styleElement.setAttribute("media", media)
		}

		if(styleElement.styleSheet) {
			styleElement.styleSheet.cssText = css;
		} else {
			while(styleElement.firstChild) {
				styleElement.removeChild(styleElement.firstChild);
			}
			styleElement.appendChild(document.createTextNode(css));
		}
	}

	function updateLink(linkElement, obj) {
		var css = obj.css;
		var sourceMap = obj.sourceMap;

		if(sourceMap) {
			// http://stackoverflow.com/a/26603875
			css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
		}

		var blob = new Blob([css], { type: "text/css" });

		var oldSrc = linkElement.href;

		linkElement.href = URL.createObjectURL(blob);

		if(oldSrc)
			URL.revokeObjectURL(oldSrc);
	}


/***/ },
/* 7 */,
/* 8 */,
/* 9 */,
/* 10 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = { "default": __webpack_require__(11), __esModule: true };

/***/ },
/* 11 */
/***/ function(module, exports, __webpack_require__) {

	var core  = __webpack_require__(12)
	  , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
	module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
	  return $JSON.stringify.apply($JSON, arguments);
	};

/***/ },
/* 12 */
/***/ function(module, exports) {

	var core = module.exports = {version: '2.4.0'};
	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef

/***/ },
/* 13 */,
/* 14 */,
/* 15 */,
/* 16 */,
/* 17 */,
/* 18 */,
/* 19 */,
/* 20 */,
/* 21 */,
/* 22 */,
/* 23 */,
/* 24 */,
/* 25 */,
/* 26 */,
/* 27 */,
/* 28 */,
/* 29 */,
/* 30 */,
/* 31 */,
/* 32 */,
/* 33 */,
/* 34 */,
/* 35 */,
/* 36 */,
/* 37 */,
/* 38 */,
/* 39 */,
/* 40 */,
/* 41 */
/***/ function(module, exports, __webpack_require__) {

	"use strict";

	exports.__esModule = true;

	var _defineProperty = __webpack_require__(42);

	var _defineProperty2 = _interopRequireDefault(_defineProperty);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	exports.default = function (obj, key, value) {
	  if (key in obj) {
	    (0, _defineProperty2.default)(obj, key, {
	      value: value,
	      enumerable: true,
	      configurable: true,
	      writable: true
	    });
	  } else {
	    obj[key] = value;
	  }

	  return obj;
	};

/***/ },
/* 42 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = { "default": __webpack_require__(43), __esModule: true };

/***/ },
/* 43 */
/***/ function(module, exports, __webpack_require__) {

	__webpack_require__(44);
	var $Object = __webpack_require__(12).Object;
	module.exports = function defineProperty(it, key, desc){
	  return $Object.defineProperty(it, key, desc);
	};

/***/ },
/* 44 */
/***/ function(module, exports, __webpack_require__) {

	var $export = __webpack_require__(45);
	// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
	$export($export.S + $export.F * !__webpack_require__(54), 'Object', {defineProperty: __webpack_require__(50).f});

/***/ },
/* 45 */
/***/ function(module, exports, __webpack_require__) {

	var global    = __webpack_require__(46)
	  , core      = __webpack_require__(12)
	  , ctx       = __webpack_require__(47)
	  , hide      = __webpack_require__(49)
	  , PROTOTYPE = 'prototype';

	var $export = function(type, name, source){
	  var IS_FORCED = type & $export.F
	    , IS_GLOBAL = type & $export.G
	    , IS_STATIC = type & $export.S
	    , IS_PROTO  = type & $export.P
	    , IS_BIND   = type & $export.B
	    , IS_WRAP   = type & $export.W
	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
	    , expProto  = exports[PROTOTYPE]
	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
	    , key, own, out;
	  if(IS_GLOBAL)source = name;
	  for(key in source){
	    // contains in native
	    own = !IS_FORCED && target && target[key] !== undefined;
	    if(own && key in exports)continue;
	    // export native or passed
	    out = own ? target[key] : source[key];
	    // prevent global pollution for namespaces
	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
	    // bind timers to global for call from export context
	    : IS_BIND && own ? ctx(out, global)
	    // wrap global constructors for prevent change them in library
	    : IS_WRAP && target[key] == out ? (function(C){
	      var F = function(a, b, c){
	        if(this instanceof C){
	          switch(arguments.length){
	            case 0: return new C;
	            case 1: return new C(a);
	            case 2: return new C(a, b);
	          } return new C(a, b, c);
	        } return C.apply(this, arguments);
	      };
	      F[PROTOTYPE] = C[PROTOTYPE];
	      return F;
	    // make static versions for prototype methods
	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
	    if(IS_PROTO){
	      (exports.virtual || (exports.virtual = {}))[key] = out;
	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
	      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
	    }
	  }
	};
	// type bitmap
	$export.F = 1;   // forced
	$export.G = 2;   // global
	$export.S = 4;   // static
	$export.P = 8;   // proto
	$export.B = 16;  // bind
	$export.W = 32;  // wrap
	$export.U = 64;  // safe
	$export.R = 128; // real proto method for `library` 
	module.exports = $export;

/***/ },
/* 46 */
/***/ function(module, exports) {

	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
	var global = module.exports = typeof window != 'undefined' && window.Math == Math
	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef

/***/ },
/* 47 */
/***/ function(module, exports, __webpack_require__) {

	// optional / simple context binding
	var aFunction = __webpack_require__(48);
	module.exports = function(fn, that, length){
	  aFunction(fn);
	  if(that === undefined)return fn;
	  switch(length){
	    case 1: return function(a){
	      return fn.call(that, a);
	    };
	    case 2: return function(a, b){
	      return fn.call(that, a, b);
	    };
	    case 3: return function(a, b, c){
	      return fn.call(that, a, b, c);
	    };
	  }
	  return function(/* ...args */){
	    return fn.apply(that, arguments);
	  };
	};

/***/ },
/* 48 */
/***/ function(module, exports) {

	module.exports = function(it){
	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
	  return it;
	};

/***/ },
/* 49 */
/***/ function(module, exports, __webpack_require__) {

	var dP         = __webpack_require__(50)
	  , createDesc = __webpack_require__(58);
	module.exports = __webpack_require__(54) ? function(object, key, value){
	  return dP.f(object, key, createDesc(1, value));
	} : function(object, key, value){
	  object[key] = value;
	  return object;
	};

/***/ },
/* 50 */
/***/ function(module, exports, __webpack_require__) {

	var anObject       = __webpack_require__(51)
	  , IE8_DOM_DEFINE = __webpack_require__(53)
	  , toPrimitive    = __webpack_require__(57)
	  , dP             = Object.defineProperty;

	exports.f = __webpack_require__(54) ? Object.defineProperty : function defineProperty(O, P, Attributes){
	  anObject(O);
	  P = toPrimitive(P, true);
	  anObject(Attributes);
	  if(IE8_DOM_DEFINE)try {
	    return dP(O, P, Attributes);
	  } catch(e){ /* empty */ }
	  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
	  if('value' in Attributes)O[P] = Attributes.value;
	  return O;
	};

/***/ },
/* 51 */
/***/ function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(52);
	module.exports = function(it){
	  if(!isObject(it))throw TypeError(it + ' is not an object!');
	  return it;
	};

/***/ },
/* 52 */
/***/ function(module, exports) {

	module.exports = function(it){
	  return typeof it === 'object' ? it !== null : typeof it === 'function';
	};

/***/ },
/* 53 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = !__webpack_require__(54) && !__webpack_require__(55)(function(){
	  return Object.defineProperty(__webpack_require__(56)('div'), 'a', {get: function(){ return 7; }}).a != 7;
	});

/***/ },
/* 54 */
/***/ function(module, exports, __webpack_require__) {

	// Thank's IE8 for his funny defineProperty
	module.exports = !__webpack_require__(55)(function(){
	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
	});

/***/ },
/* 55 */
/***/ function(module, exports) {

	module.exports = function(exec){
	  try {
	    return !!exec();
	  } catch(e){
	    return true;
	  }
	};

/***/ },
/* 56 */
/***/ function(module, exports, __webpack_require__) {

	var isObject = __webpack_require__(52)
	  , document = __webpack_require__(46).document
	  // in old IE typeof document.createElement is 'object'
	  , is = isObject(document) && isObject(document.createElement);
	module.exports = function(it){
	  return is ? document.createElement(it) : {};
	};

/***/ },
/* 57 */
/***/ function(module, exports, __webpack_require__) {

	// 7.1.1 ToPrimitive(input [, PreferredType])
	var isObject = __webpack_require__(52);
	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
	// and the second argument - flag - preferred type is a string
	module.exports = function(it, S){
	  if(!isObject(it))return it;
	  var fn, val;
	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
	  throw TypeError("Can't convert object to primitive value");
	};

/***/ },
/* 58 */
/***/ function(module, exports) {

	module.exports = function(bitmap, value){
	  return {
	    enumerable  : !(bitmap & 1),
	    configurable: !(bitmap & 2),
	    writable    : !(bitmap & 4),
	    value       : value
	  };
	};

/***/ },
/* 59 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global, setImmediate, process) {/*!
	 * async
	 * https://github.com/caolan/async
	 *
	 * Copyright 2010-2014 Caolan McMahon
	 * Released under the MIT license
	 */
	(function () {

	    var async = {};
	    function noop() {}
	    function identity(v) {
	        return v;
	    }
	    function toBool(v) {
	        return !!v;
	    }
	    function notId(v) {
	        return !v;
	    }

	    // global on the server, window in the browser
	    var previous_async;

	    // Establish the root object, `window` (`self`) in the browser, `global`
	    // on the server, or `this` in some virtual machines. We use `self`
	    // instead of `window` for `WebWorker` support.
	    var root = typeof self === 'object' && self.self === self && self ||
	            typeof global === 'object' && global.global === global && global ||
	            this;

	    if (root != null) {
	        previous_async = root.async;
	    }

	    async.noConflict = function () {
	        root.async = previous_async;
	        return async;
	    };

	    function only_once(fn) {
	        return function() {
	            if (fn === null) throw new Error("Callback was already called.");
	            fn.apply(this, arguments);
	            fn = null;
	        };
	    }

	    function _once(fn) {
	        return function() {
	            if (fn === null) return;
	            fn.apply(this, arguments);
	            fn = null;
	        };
	    }

	    //// cross-browser compatiblity functions ////

	    var _toString = Object.prototype.toString;

	    var _isArray = Array.isArray || function (obj) {
	        return _toString.call(obj) === '[object Array]';
	    };

	    // Ported from underscore.js isObject
	    var _isObject = function(obj) {
	        var type = typeof obj;
	        return type === 'function' || type === 'object' && !!obj;
	    };

	    function _isArrayLike(arr) {
	        return _isArray(arr) || (
	            // has a positive integer length property
	            typeof arr.length === "number" &&
	            arr.length >= 0 &&
	            arr.length % 1 === 0
	        );
	    }

	    function _arrayEach(arr, iterator) {
	        var index = -1,
	            length = arr.length;

	        while (++index < length) {
	            iterator(arr[index], index, arr);
	        }
	    }

	    function _map(arr, iterator) {
	        var index = -1,
	            length = arr.length,
	            result = Array(length);

	        while (++index < length) {
	            result[index] = iterator(arr[index], index, arr);
	        }
	        return result;
	    }

	    function _range(count) {
	        return _map(Array(count), function (v, i) { return i; });
	    }

	    function _reduce(arr, iterator, memo) {
	        _arrayEach(arr, function (x, i, a) {
	            memo = iterator(memo, x, i, a);
	        });
	        return memo;
	    }

	    function _forEachOf(object, iterator) {
	        _arrayEach(_keys(object), function (key) {
	            iterator(object[key], key);
	        });
	    }

	    function _indexOf(arr, item) {
	        for (var i = 0; i < arr.length; i++) {
	            if (arr[i] === item) return i;
	        }
	        return -1;
	    }

	    var _keys = Object.keys || function (obj) {
	        var keys = [];
	        for (var k in obj) {
	            if (obj.hasOwnProperty(k)) {
	                keys.push(k);
	            }
	        }
	        return keys;
	    };

	    function _keyIterator(coll) {
	        var i = -1;
	        var len;
	        var keys;
	        if (_isArrayLike(coll)) {
	            len = coll.length;
	            return function next() {
	                i++;
	                return i < len ? i : null;
	            };
	        } else {
	            keys = _keys(coll);
	            len = keys.length;
	            return function next() {
	                i++;
	                return i < len ? keys[i] : null;
	            };
	        }
	    }

	    // Similar to ES6's rest param (http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html)
	    // This accumulates the arguments passed into an array, after a given index.
	    // From underscore.js (https://github.com/jashkenas/underscore/pull/2140).
	    function _restParam(func, startIndex) {
	        startIndex = startIndex == null ? func.length - 1 : +startIndex;
	        return function() {
	            var length = Math.max(arguments.length - startIndex, 0);
	            var rest = Array(length);
	            for (var index = 0; index < length; index++) {
	                rest[index] = arguments[index + startIndex];
	            }
	            switch (startIndex) {
	                case 0: return func.call(this, rest);
	                case 1: return func.call(this, arguments[0], rest);
	            }
	            // Currently unused but handle cases outside of the switch statement:
	            // var args = Array(startIndex + 1);
	            // for (index = 0; index < startIndex; index++) {
	            //     args[index] = arguments[index];
	            // }
	            // args[startIndex] = rest;
	            // return func.apply(this, args);
	        };
	    }

	    function _withoutIndex(iterator) {
	        return function (value, index, callback) {
	            return iterator(value, callback);
	        };
	    }

	    //// exported async module functions ////

	    //// nextTick implementation with browser-compatible fallback ////

	    // capture the global reference to guard against fakeTimer mocks
	    var _setImmediate = typeof setImmediate === 'function' && setImmediate;

	    var _delay = _setImmediate ? function(fn) {
	        // not a direct alias for IE10 compatibility
	        _setImmediate(fn);
	    } : function(fn) {
	        setTimeout(fn, 0);
	    };

	    if (typeof process === 'object' && typeof process.nextTick === 'function') {
	        async.nextTick = process.nextTick;
	    } else {
	        async.nextTick = _delay;
	    }
	    async.setImmediate = _setImmediate ? _delay : async.nextTick;


	    async.forEach =
	    async.each = function (arr, iterator, callback) {
	        return async.eachOf(arr, _withoutIndex(iterator), callback);
	    };

	    async.forEachSeries =
	    async.eachSeries = function (arr, iterator, callback) {
	        return async.eachOfSeries(arr, _withoutIndex(iterator), callback);
	    };


	    async.forEachLimit =
	    async.eachLimit = function (arr, limit, iterator, callback) {
	        return _eachOfLimit(limit)(arr, _withoutIndex(iterator), callback);
	    };

	    async.forEachOf =
	    async.eachOf = function (object, iterator, callback) {
	        callback = _once(callback || noop);
	        object = object || [];

	        var iter = _keyIterator(object);
	        var key, completed = 0;

	        while ((key = iter()) != null) {
	            completed += 1;
	            iterator(object[key], key, only_once(done));
	        }

	        if (completed === 0) callback(null);

	        function done(err) {
	            completed--;
	            if (err) {
	                callback(err);
	            }
	            // Check key is null in case iterator isn't exhausted
	            // and done resolved synchronously.
	            else if (key === null && completed <= 0) {
	                callback(null);
	            }
	        }
	    };

	    async.forEachOfSeries =
	    async.eachOfSeries = function (obj, iterator, callback) {
	        callback = _once(callback || noop);
	        obj = obj || [];
	        var nextKey = _keyIterator(obj);
	        var key = nextKey();
	        function iterate() {
	            var sync = true;
	            if (key === null) {
	                return callback(null);
	            }
	            iterator(obj[key], key, only_once(function (err) {
	                if (err) {
	                    callback(err);
	                }
	                else {
	                    key = nextKey();
	                    if (key === null) {
	                        return callback(null);
	                    } else {
	                        if (sync) {
	                            async.setImmediate(iterate);
	                        } else {
	                            iterate();
	                        }
	                    }
	                }
	            }));
	            sync = false;
	        }
	        iterate();
	    };



	    async.forEachOfLimit =
	    async.eachOfLimit = function (obj, limit, iterator, callback) {
	        _eachOfLimit(limit)(obj, iterator, callback);
	    };

	    function _eachOfLimit(limit) {

	        return function (obj, iterator, callback) {
	            callback = _once(callback || noop);
	            obj = obj || [];
	            var nextKey = _keyIterator(obj);
	            if (limit <= 0) {
	                return callback(null);
	            }
	            var done = false;
	            var running = 0;
	            var errored = false;

	            (function replenish () {
	                if (done && running <= 0) {
	                    return callback(null);
	                }

	                while (running < limit && !errored) {
	                    var key = nextKey();
	                    if (key === null) {
	                        done = true;
	                        if (running <= 0) {
	                            callback(null);
	                        }
	                        return;
	                    }
	                    running += 1;
	                    iterator(obj[key], key, only_once(function (err) {
	                        running -= 1;
	                        if (err) {
	                            callback(err);
	                            errored = true;
	                        }
	                        else {
	                            replenish();
	                        }
	                    }));
	                }
	            })();
	        };
	    }


	    function doParallel(fn) {
	        return function (obj, iterator, callback) {
	            return fn(async.eachOf, obj, iterator, callback);
	        };
	    }
	    function doParallelLimit(fn) {
	        return function (obj, limit, iterator, callback) {
	            return fn(_eachOfLimit(limit), obj, iterator, callback);
	        };
	    }
	    function doSeries(fn) {
	        return function (obj, iterator, callback) {
	            return fn(async.eachOfSeries, obj, iterator, callback);
	        };
	    }

	    function _asyncMap(eachfn, arr, iterator, callback) {
	        callback = _once(callback || noop);
	        arr = arr || [];
	        var results = _isArrayLike(arr) ? [] : {};
	        eachfn(arr, function (value, index, callback) {
	            iterator(value, function (err, v) {
	                results[index] = v;
	                callback(err);
	            });
	        }, function (err) {
	            callback(err, results);
	        });
	    }

	    async.map = doParallel(_asyncMap);
	    async.mapSeries = doSeries(_asyncMap);
	    async.mapLimit = doParallelLimit(_asyncMap);

	    // reduce only has a series version, as doing reduce in parallel won't
	    // work in many situations.
	    async.inject =
	    async.foldl =
	    async.reduce = function (arr, memo, iterator, callback) {
	        async.eachOfSeries(arr, function (x, i, callback) {
	            iterator(memo, x, function (err, v) {
	                memo = v;
	                callback(err);
	            });
	        }, function (err) {
	            callback(err, memo);
	        });
	    };

	    async.foldr =
	    async.reduceRight = function (arr, memo, iterator, callback) {
	        var reversed = _map(arr, identity).reverse();
	        async.reduce(reversed, memo, iterator, callback);
	    };

	    async.transform = function (arr, memo, iterator, callback) {
	        if (arguments.length === 3) {
	            callback = iterator;
	            iterator = memo;
	            memo = _isArray(arr) ? [] : {};
	        }

	        async.eachOf(arr, function(v, k, cb) {
	            iterator(memo, v, k, cb);
	        }, function(err) {
	            callback(err, memo);
	        });
	    };

	    function _filter(eachfn, arr, iterator, callback) {
	        var results = [];
	        eachfn(arr, function (x, index, callback) {
	            iterator(x, function (v) {
	                if (v) {
	                    results.push({index: index, value: x});
	                }
	                callback();
	            });
	        }, function () {
	            callback(_map(results.sort(function (a, b) {
	                return a.index - b.index;
	            }), function (x) {
	                return x.value;
	            }));
	        });
	    }

	    async.select =
	    async.filter = doParallel(_filter);

	    async.selectLimit =
	    async.filterLimit = doParallelLimit(_filter);

	    async.selectSeries =
	    async.filterSeries = doSeries(_filter);

	    function _reject(eachfn, arr, iterator, callback) {
	        _filter(eachfn, arr, function(value, cb) {
	            iterator(value, function(v) {
	                cb(!v);
	            });
	        }, callback);
	    }
	    async.reject = doParallel(_reject);
	    async.rejectLimit = doParallelLimit(_reject);
	    async.rejectSeries = doSeries(_reject);

	    function _createTester(eachfn, check, getResult) {
	        return function(arr, limit, iterator, cb) {
	            function done() {
	                if (cb) cb(getResult(false, void 0));
	            }
	            function iteratee(x, _, callback) {
	                if (!cb) return callback();
	                iterator(x, function (v) {
	                    if (cb && check(v)) {
	                        cb(getResult(true, x));
	                        cb = iterator = false;
	                    }
	                    callback();
	                });
	            }
	            if (arguments.length > 3) {
	                eachfn(arr, limit, iteratee, done);
	            } else {
	                cb = iterator;
	                iterator = limit;
	                eachfn(arr, iteratee, done);
	            }
	        };
	    }

	    async.any =
	    async.some = _createTester(async.eachOf, toBool, identity);

	    async.someLimit = _createTester(async.eachOfLimit, toBool, identity);

	    async.all =
	    async.every = _createTester(async.eachOf, notId, notId);

	    async.everyLimit = _createTester(async.eachOfLimit, notId, notId);

	    function _findGetResult(v, x) {
	        return x;
	    }
	    async.detect = _createTester(async.eachOf, identity, _findGetResult);
	    async.detectSeries = _createTester(async.eachOfSeries, identity, _findGetResult);
	    async.detectLimit = _createTester(async.eachOfLimit, identity, _findGetResult);

	    async.sortBy = function (arr, iterator, callback) {
	        async.map(arr, function (x, callback) {
	            iterator(x, function (err, criteria) {
	                if (err) {
	                    callback(err);
	                }
	                else {
	                    callback(null, {value: x, criteria: criteria});
	                }
	            });
	        }, function (err, results) {
	            if (err) {
	                return callback(err);
	            }
	            else {
	                callback(null, _map(results.sort(comparator), function (x) {
	                    return x.value;
	                }));
	            }

	        });

	        function comparator(left, right) {
	            var a = left.criteria, b = right.criteria;
	            return a < b ? -1 : a > b ? 1 : 0;
	        }
	    };

	    async.auto = function (tasks, concurrency, callback) {
	        if (typeof arguments[1] === 'function') {
	            // concurrency is optional, shift the args.
	            callback = concurrency;
	            concurrency = null;
	        }
	        callback = _once(callback || noop);
	        var keys = _keys(tasks);
	        var remainingTasks = keys.length;
	        if (!remainingTasks) {
	            return callback(null);
	        }
	        if (!concurrency) {
	            concurrency = remainingTasks;
	        }

	        var results = {};
	        var runningTasks = 0;

	        var hasError = false;

	        var listeners = [];
	        function addListener(fn) {
	            listeners.unshift(fn);
	        }
	        function removeListener(fn) {
	            var idx = _indexOf(listeners, fn);
	            if (idx >= 0) listeners.splice(idx, 1);
	        }
	        function taskComplete() {
	            remainingTasks--;
	            _arrayEach(listeners.slice(0), function (fn) {
	                fn();
	            });
	        }

	        addListener(function () {
	            if (!remainingTasks) {
	                callback(null, results);
	            }
	        });

	        _arrayEach(keys, function (k) {
	            if (hasError) return;
	            var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]];
	            var taskCallback = _restParam(function(err, args) {
	                runningTasks--;
	                if (args.length <= 1) {
	                    args = args[0];
	                }
	                if (err) {
	                    var safeResults = {};
	                    _forEachOf(results, function(val, rkey) {
	                        safeResults[rkey] = val;
	                    });
	                    safeResults[k] = args;
	                    hasError = true;

	                    callback(err, safeResults);
	                }
	                else {
	                    results[k] = args;
	                    async.setImmediate(taskComplete);
	                }
	            });
	            var requires = task.slice(0, task.length - 1);
	            // prevent dead-locks
	            var len = requires.length;
	            var dep;
	            while (len--) {
	                if (!(dep = tasks[requires[len]])) {
	                    throw new Error('Has nonexistent dependency in ' + requires.join(', '));
	                }
	                if (_isArray(dep) && _indexOf(dep, k) >= 0) {
	                    throw new Error('Has cyclic dependencies');
	                }
	            }
	            function ready() {
	                return runningTasks < concurrency && _reduce(requires, function (a, x) {
	                    return (a && results.hasOwnProperty(x));
	                }, true) && !results.hasOwnProperty(k);
	            }
	            if (ready()) {
	                runningTasks++;
	                task[task.length - 1](taskCallback, results);
	            }
	            else {
	                addListener(listener);
	            }
	            function listener() {
	                if (ready()) {
	                    runningTasks++;
	                    removeListener(listener);
	                    task[task.length - 1](taskCallback, results);
	                }
	            }
	        });
	    };



	    async.retry = function(times, task, callback) {
	        var DEFAULT_TIMES = 5;
	        var DEFAULT_INTERVAL = 0;

	        var attempts = [];

	        var opts = {
	            times: DEFAULT_TIMES,
	            interval: DEFAULT_INTERVAL
	        };

	        function parseTimes(acc, t){
	            if(typeof t === 'number'){
	                acc.times = parseInt(t, 10) || DEFAULT_TIMES;
	            } else if(typeof t === 'object'){
	                acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
	                acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
	            } else {
	                throw new Error('Unsupported argument type for \'times\': ' + typeof t);
	            }
	        }

	        var length = arguments.length;
	        if (length < 1 || length > 3) {
	            throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
	        } else if (length <= 2 && typeof times === 'function') {
	            callback = task;
	            task = times;
	        }
	        if (typeof times !== 'function') {
	            parseTimes(opts, times);
	        }
	        opts.callback = callback;
	        opts.task = task;

	        function wrappedTask(wrappedCallback, wrappedResults) {
	            function retryAttempt(task, finalAttempt) {
	                return function(seriesCallback) {
	                    task(function(err, result){
	                        seriesCallback(!err || finalAttempt, {err: err, result: result});
	                    }, wrappedResults);
	                };
	            }

	            function retryInterval(interval){
	                return function(seriesCallback){
	                    setTimeout(function(){
	                        seriesCallback(null);
	                    }, interval);
	                };
	            }

	            while (opts.times) {

	                var finalAttempt = !(opts.times-=1);
	                attempts.push(retryAttempt(opts.task, finalAttempt));
	                if(!finalAttempt && opts.interval > 0){
	                    attempts.push(retryInterval(opts.interval));
	                }
	            }

	            async.series(attempts, function(done, data){
	                data = data[data.length - 1];
	                (wrappedCallback || opts.callback)(data.err, data.result);
	            });
	        }

	        // If a callback is passed, run this as a controll flow
	        return opts.callback ? wrappedTask() : wrappedTask;
	    };

	    async.waterfall = function (tasks, callback) {
	        callback = _once(callback || noop);
	        if (!_isArray(tasks)) {
	            var err = new Error('First argument to waterfall must be an array of functions');
	            return callback(err);
	        }
	        if (!tasks.length) {
	            return callback();
	        }
	        function wrapIterator(iterator) {
	            return _restParam(function (err, args) {
	                if (err) {
	                    callback.apply(null, [err].concat(args));
	                }
	                else {
	                    var next = iterator.next();
	                    if (next) {
	                        args.push(wrapIterator(next));
	                    }
	                    else {
	                        args.push(callback);
	                    }
	                    ensureAsync(iterator).apply(null, args);
	                }
	            });
	        }
	        wrapIterator(async.iterator(tasks))();
	    };

	    function _parallel(eachfn, tasks, callback) {
	        callback = callback || noop;
	        var results = _isArrayLike(tasks) ? [] : {};

	        eachfn(tasks, function (task, key, callback) {
	            task(_restParam(function (err, args) {
	                if (args.length <= 1) {
	                    args = args[0];
	                }
	                results[key] = args;
	                callback(err);
	            }));
	        }, function (err) {
	            callback(err, results);
	        });
	    }

	    async.parallel = function (tasks, callback) {
	        _parallel(async.eachOf, tasks, callback);
	    };

	    async.parallelLimit = function(tasks, limit, callback) {
	        _parallel(_eachOfLimit(limit), tasks, callback);
	    };

	    async.series = function(tasks, callback) {
	        _parallel(async.eachOfSeries, tasks, callback);
	    };

	    async.iterator = function (tasks) {
	        function makeCallback(index) {
	            function fn() {
	                if (tasks.length) {
	                    tasks[index].apply(null, arguments);
	                }
	                return fn.next();
	            }
	            fn.next = function () {
	                return (index < tasks.length - 1) ? makeCallback(index + 1): null;
	            };
	            return fn;
	        }
	        return makeCallback(0);
	    };

	    async.apply = _restParam(function (fn, args) {
	        return _restParam(function (callArgs) {
	            return fn.apply(
	                null, args.concat(callArgs)
	            );
	        });
	    });

	    function _concat(eachfn, arr, fn, callback) {
	        var result = [];
	        eachfn(arr, function (x, index, cb) {
	            fn(x, function (err, y) {
	                result = result.concat(y || []);
	                cb(err);
	            });
	        }, function (err) {
	            callback(err, result);
	        });
	    }
	    async.concat = doParallel(_concat);
	    async.concatSeries = doSeries(_concat);

	    async.whilst = function (test, iterator, callback) {
	        callback = callback || noop;
	        if (test()) {
	            var next = _restParam(function(err, args) {
	                if (err) {
	                    callback(err);
	                } else if (test.apply(this, args)) {
	                    iterator(next);
	                } else {
	                    callback.apply(null, [null].concat(args));
	                }
	            });
	            iterator(next);
	        } else {
	            callback(null);
	        }
	    };

	    async.doWhilst = function (iterator, test, callback) {
	        var calls = 0;
	        return async.whilst(function() {
	            return ++calls <= 1 || test.apply(this, arguments);
	        }, iterator, callback);
	    };

	    async.until = function (test, iterator, callback) {
	        return async.whilst(function() {
	            return !test.apply(this, arguments);
	        }, iterator, callback);
	    };

	    async.doUntil = function (iterator, test, callback) {
	        return async.doWhilst(iterator, function() {
	            return !test.apply(this, arguments);
	        }, callback);
	    };

	    async.during = function (test, iterator, callback) {
	        callback = callback || noop;

	        var next = _restParam(function(err, args) {
	            if (err) {
	                callback(err);
	            } else {
	                args.push(check);
	                test.apply(this, args);
	            }
	        });

	        var check = function(err, truth) {
	            if (err) {
	                callback(err);
	            } else if (truth) {
	                iterator(next);
	            } else {
	                callback(null);
	            }
	        };

	        test(check);
	    };

	    async.doDuring = function (iterator, test, callback) {
	        var calls = 0;
	        async.during(function(next) {
	            if (calls++ < 1) {
	                next(null, true);
	            } else {
	                test.apply(this, arguments);
	            }
	        }, iterator, callback);
	    };

	    function _queue(worker, concurrency, payload) {
	        if (concurrency == null) {
	            concurrency = 1;
	        }
	        else if(concurrency === 0) {
	            throw new Error('Concurrency must not be zero');
	        }
	        function _insert(q, data, pos, callback) {
	            if (callback != null && typeof callback !== "function") {
	                throw new Error("task callback must be a function");
	            }
	            q.started = true;
	            if (!_isArray(data)) {
	                data = [data];
	            }
	            if(data.length === 0 && q.idle()) {
	                // call drain immediately if there are no tasks
	                return async.setImmediate(function() {
	                    q.drain();
	                });
	            }
	            _arrayEach(data, function(task) {
	                var item = {
	                    data: task,
	                    callback: callback || noop
	                };

	                if (pos) {
	                    q.tasks.unshift(item);
	                } else {
	                    q.tasks.push(item);
	                }

	                if (q.tasks.length === q.concurrency) {
	                    q.saturated();
	                }
	            });
	            async.setImmediate(q.process);
	        }
	        function _next(q, tasks) {
	            return function(){
	                workers -= 1;

	                var removed = false;
	                var args = arguments;
	                _arrayEach(tasks, function (task) {
	                    _arrayEach(workersList, function (worker, index) {
	                        if (worker === task && !removed) {
	                            workersList.splice(index, 1);
	                            removed = true;
	                        }
	                    });

	                    task.callback.apply(task, args);
	                });
	                if (q.tasks.length + workers === 0) {
	                    q.drain();
	                }
	                q.process();
	            };
	        }

	        var workers = 0;
	        var workersList = [];
	        var q = {
	            tasks: [],
	            concurrency: concurrency,
	            payload: payload,
	            saturated: noop,
	            empty: noop,
	            drain: noop,
	            started: false,
	            paused: false,
	            push: function (data, callback) {
	                _insert(q, data, false, callback);
	            },
	            kill: function () {
	                q.drain = noop;
	                q.tasks = [];
	            },
	            unshift: function (data, callback) {
	                _insert(q, data, true, callback);
	            },
	            process: function () {
	                while(!q.paused && workers < q.concurrency && q.tasks.length){

	                    var tasks = q.payload ?
	                        q.tasks.splice(0, q.payload) :
	                        q.tasks.splice(0, q.tasks.length);

	                    var data = _map(tasks, function (task) {
	                        return task.data;
	                    });

	                    if (q.tasks.length === 0) {
	                        q.empty();
	                    }
	                    workers += 1;
	                    workersList.push(tasks[0]);
	                    var cb = only_once(_next(q, tasks));
	                    worker(data, cb);
	                }
	            },
	            length: function () {
	                return q.tasks.length;
	            },
	            running: function () {
	                return workers;
	            },
	            workersList: function () {
	                return workersList;
	            },
	            idle: function() {
	                return q.tasks.length + workers === 0;
	            },
	            pause: function () {
	                q.paused = true;
	            },
	            resume: function () {
	                if (q.paused === false) { return; }
	                q.paused = false;
	                var resumeCount = Math.min(q.concurrency, q.tasks.length);
	                // Need to call q.process once per concurrent
	                // worker to preserve full concurrency after pause
	                for (var w = 1; w <= resumeCount; w++) {
	                    async.setImmediate(q.process);
	                }
	            }
	        };
	        return q;
	    }

	    async.queue = function (worker, concurrency) {
	        var q = _queue(function (items, cb) {
	            worker(items[0], cb);
	        }, concurrency, 1);

	        return q;
	    };

	    async.priorityQueue = function (worker, concurrency) {

	        function _compareTasks(a, b){
	            return a.priority - b.priority;
	        }

	        function _binarySearch(sequence, item, compare) {
	            var beg = -1,
	                end = sequence.length - 1;
	            while (beg < end) {
	                var mid = beg + ((end - beg + 1) >>> 1);
	                if (compare(item, sequence[mid]) >= 0) {
	                    beg = mid;
	                } else {
	                    end = mid - 1;
	                }
	            }
	            return beg;
	        }

	        function _insert(q, data, priority, callback) {
	            if (callback != null && typeof callback !== "function") {
	                throw new Error("task callback must be a function");
	            }
	            q.started = true;
	            if (!_isArray(data)) {
	                data = [data];
	            }
	            if(data.length === 0) {
	                // call drain immediately if there are no tasks
	                return async.setImmediate(function() {
	                    q.drain();
	                });
	            }
	            _arrayEach(data, function(task) {
	                var item = {
	                    data: task,
	                    priority: priority,
	                    callback: typeof callback === 'function' ? callback : noop
	                };

	                q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item);

	                if (q.tasks.length === q.concurrency) {
	                    q.saturated();
	                }
	                async.setImmediate(q.process);
	            });
	        }

	        // Start with a normal queue
	        var q = async.queue(worker, concurrency);

	        // Override push to accept second parameter representing priority
	        q.push = function (data, priority, callback) {
	            _insert(q, data, priority, callback);
	        };

	        // Remove unshift function
	        delete q.unshift;

	        return q;
	    };

	    async.cargo = function (worker, payload) {
	        return _queue(worker, 1, payload);
	    };

	    function _console_fn(name) {
	        return _restParam(function (fn, args) {
	            fn.apply(null, args.concat([_restParam(function (err, args) {
	                if (typeof console === 'object') {
	                    if (err) {
	                        if (console.error) {
	                            console.error(err);
	                        }
	                    }
	                    else if (console[name]) {
	                        _arrayEach(args, function (x) {
	                            console[name](x);
	                        });
	                    }
	                }
	            })]));
	        });
	    }
	    async.log = _console_fn('log');
	    async.dir = _console_fn('dir');
	    /*async.info = _console_fn('info');
	    async.warn = _console_fn('warn');
	    async.error = _console_fn('error');*/

	    async.memoize = function (fn, hasher) {
	        var memo = {};
	        var queues = {};
	        var has = Object.prototype.hasOwnProperty;
	        hasher = hasher || identity;
	        var memoized = _restParam(function memoized(args) {
	            var callback = args.pop();
	            var key = hasher.apply(null, args);
	            if (has.call(memo, key)) {   
	                async.setImmediate(function () {
	                    callback.apply(null, memo[key]);
	                });
	            }
	            else if (has.call(queues, key)) {
	                queues[key].push(callback);
	            }
	            else {
	                queues[key] = [callback];
	                fn.apply(null, args.concat([_restParam(function (args) {
	                    memo[key] = args;
	                    var q = queues[key];
	                    delete queues[key];
	                    for (var i = 0, l = q.length; i < l; i++) {
	                        q[i].apply(null, args);
	                    }
	                })]));
	            }
	        });
	        memoized.memo = memo;
	        memoized.unmemoized = fn;
	        return memoized;
	    };

	    async.unmemoize = function (fn) {
	        return function () {
	            return (fn.unmemoized || fn).apply(null, arguments);
	        };
	    };

	    function _times(mapper) {
	        return function (count, iterator, callback) {
	            mapper(_range(count), iterator, callback);
	        };
	    }

	    async.times = _times(async.map);
	    async.timesSeries = _times(async.mapSeries);
	    async.timesLimit = function (count, limit, iterator, callback) {
	        return async.mapLimit(_range(count), limit, iterator, callback);
	    };

	    async.seq = function (/* functions... */) {
	        var fns = arguments;
	        return _restParam(function (args) {
	            var that = this;

	            var callback = args[args.length - 1];
	            if (typeof callback == 'function') {
	                args.pop();
	            } else {
	                callback = noop;
	            }

	            async.reduce(fns, args, function (newargs, fn, cb) {
	                fn.apply(that, newargs.concat([_restParam(function (err, nextargs) {
	                    cb(err, nextargs);
	                })]));
	            },
	            function (err, results) {
	                callback.apply(that, [err].concat(results));
	            });
	        });
	    };

	    async.compose = function (/* functions... */) {
	        return async.seq.apply(null, Array.prototype.reverse.call(arguments));
	    };


	    function _applyEach(eachfn) {
	        return _restParam(function(fns, args) {
	            var go = _restParam(function(args) {
	                var that = this;
	                var callback = args.pop();
	                return eachfn(fns, function (fn, _, cb) {
	                    fn.apply(that, args.concat([cb]));
	                },
	                callback);
	            });
	            if (args.length) {
	                return go.apply(this, args);
	            }
	            else {
	                return go;
	            }
	        });
	    }

	    async.applyEach = _applyEach(async.eachOf);
	    async.applyEachSeries = _applyEach(async.eachOfSeries);


	    async.forever = function (fn, callback) {
	        var done = only_once(callback || noop);
	        var task = ensureAsync(fn);
	        function next(err) {
	            if (err) {
	                return done(err);
	            }
	            task(next);
	        }
	        next();
	    };

	    function ensureAsync(fn) {
	        return _restParam(function (args) {
	            var callback = args.pop();
	            args.push(function () {
	                var innerArgs = arguments;
	                if (sync) {
	                    async.setImmediate(function () {
	                        callback.apply(null, innerArgs);
	                    });
	                } else {
	                    callback.apply(null, innerArgs);
	                }
	            });
	            var sync = true;
	            fn.apply(this, args);
	            sync = false;
	        });
	    }

	    async.ensureAsync = ensureAsync;

	    async.constant = _restParam(function(values) {
	        var args = [null].concat(values);
	        return function (callback) {
	            return callback.apply(this, args);
	        };
	    });

	    async.wrapSync =
	    async.asyncify = function asyncify(func) {
	        return _restParam(function (args) {
	            var callback = args.pop();
	            var result;
	            try {
	                result = func.apply(this, args);
	            } catch (e) {
	                return callback(e);
	            }
	            // if result is Promise object
	            if (_isObject(result) && typeof result.then === "function") {
	                result.then(function(value) {
	                    callback(null, value);
	                })["catch"](function(err) {
	                    callback(err.message ? err : new Error(err));
	                });
	            } else {
	                callback(null, result);
	            }
	        });
	    };

	    // Node.js
	    if (typeof module === 'object' && module.exports) {
	        module.exports = async;
	    }
	    // AMD / RequireJS
	    else if (true) {
	        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
	            return async;
	        }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	    }
	    // included directly via <script> tag
	    else {
	        root.async = async;
	    }

	}());

	/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(60).setImmediate, __webpack_require__(61)))

/***/ },
/* 60 */
/***/ function(module, exports, __webpack_require__) {

	/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(61).nextTick;
	var apply = Function.prototype.apply;
	var slice = Array.prototype.slice;
	var immediateIds = {};
	var nextImmediateId = 0;

	// DOM APIs, for completeness

	exports.setTimeout = function() {
	  return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);
	};
	exports.setInterval = function() {
	  return new Timeout(apply.call(setInterval, window, arguments), clearInterval);
	};
	exports.clearTimeout =
	exports.clearInterval = function(timeout) { timeout.close(); };

	function Timeout(id, clearFn) {
	  this._id = id;
	  this._clearFn = clearFn;
	}
	Timeout.prototype.unref = Timeout.prototype.ref = function() {};
	Timeout.prototype.close = function() {
	  this._clearFn.call(window, this._id);
	};

	// Does not start the time, just sets up the members needed.
	exports.enroll = function(item, msecs) {
	  clearTimeout(item._idleTimeoutId);
	  item._idleTimeout = msecs;
	};

	exports.unenroll = function(item) {
	  clearTimeout(item._idleTimeoutId);
	  item._idleTimeout = -1;
	};

	exports._unrefActive = exports.active = function(item) {
	  clearTimeout(item._idleTimeoutId);

	  var msecs = item._idleTimeout;
	  if (msecs >= 0) {
	    item._idleTimeoutId = setTimeout(function onTimeout() {
	      if (item._onTimeout)
	        item._onTimeout();
	    }, msecs);
	  }
	};

	// That's not how node.js implements it but the exposed api is the same.
	exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) {
	  var id = nextImmediateId++;
	  var args = arguments.length < 2 ? false : slice.call(arguments, 1);

	  immediateIds[id] = true;

	  nextTick(function onNextTick() {
	    if (immediateIds[id]) {
	      // fn.call() is faster so we optimize for the common use-case
	      // @see http://jsperf.com/call-apply-segu
	      if (args) {
	        fn.apply(null, args);
	      } else {
	        fn.call(null);
	      }
	      // Prevent ids from leaking
	      exports.clearImmediate(id);
	    }
	  });

	  return id;
	};

	exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) {
	  delete immediateIds[id];
	};
	/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(60).setImmediate, __webpack_require__(60).clearImmediate))

/***/ },
/* 61 */,
/* 62 */,
/* 63 */,
/* 64 */,
/* 65 */,
/* 66 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/calling.png";

/***/ },
/* 67 */
/***/ function(module, exports, __webpack_require__) {

	var async = __webpack_require__(59);
	var tools = __webpack_require__(68);
	var jssdk = function(vue) {
	    var that = this;
	    that.image_localIds = null;
	    that.image_serverId = null;
	    vue.$http.get('/getconf?url=' + encodeURIComponent(location.href)).then(function(res) {
	        var config = res.json();
	        console.log(config.appid);
	        console.log(config.timestamp);
	        console.log(config.nonceStr);
	        console.log(config.signature);
	        console.log(config.jsApiList);
	        wx.config({
	            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
	            appId: config.appid, // 必填，公众号的唯一标识
	            timestamp: config.timestamp, // 必填，生成签名的时间戳
	            nonceStr: config.nonceStr, // 必填，生成签名的随机串
	            signature: config.signature, // 必填，签名，见附录1
	            jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'chooseImage', 'uploadImage'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
	        });
	    }, function(err) {
	        console.log("jssdk验证失败")
	    });
	    //  
	    wx.ready(function() {
	        wx.onMenuShareTimeline({
	            title: '【天橙中国】寻找作“案”伙伴', // 分享标题
	            link: 'http://www.wit-orange.com/rszp', // 分享链接
	            imgUrl: 'http://www.wit-orange.com/rszp/images/shareimg.jpg', // 分享图标
	            success: function() {
	                // 用户确认分享后执行的回调函数
	                history.go(0);
	            },
	            cancel: function() {
	                // 用户取消分享后执行的回调函数
	                history.go(0);
	            }
	        });
	        wx.onMenuShareAppMessage({
	            title: '【天橙中国】寻找作“案”伙伴', // 分享标题
	            desc: '在这里，做自己！', // 分享描述
	            link: 'http://www.wit-orange.com/rszp', // 分享链接
	            imgUrl: 'http://www.wit-orange.com/rszp/images/shareimg.jpg', // 分享图标
	            type: '', // 分享类型,music、video或link，不填默认为link
	            dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
	            success: function() {
	                // 用户确认分享后执行的回调函数
	            },
	            cancel: function() {
	                // 用户取消分享后执行的回调函数
	            }
	        });
	    });
	    that.chooseImages = function(cb) {
	        wx.chooseImage({
	            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
	            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
	            success: function(res) {
	                tools.execCallBack(cb,res.localIds);
	            }
	        });
	    };
	    that.uploadImages = function(localIds,__cb) {
	        if (localIds.length <= 0) {
	            console.log('选择的图片为空');
	            return;
	        } else {
	            async.mapSeries(localIds, function(localId, cb) {
	                wx.uploadImage({
	                    localId: localId, // 需要上传的图片的本地ID，由chooseImage接口获得
	                    isShowProgressTips: 1, // 默认为1，显示进度提示
	                    success: function(res) {
	                        cb(null, res.serverId);
	                    }
	                });
	            }, function(err, result) {
	                if (err) {
	                    console.log(err);
	                }
	                console.log(result);
	                tools.execCallBack(__cb,result)
	            })
	        }
	    }
	};

	module.exports = jssdk;


/***/ },
/* 68 */
/***/ function(module, exports) {

	var MyTools = {
	    /**
	     * 传入一个回调函数名,和参数，判断是否是函数，如果是，则回调
	     * @param  {String} a 函数名
	     * @param  {字符串,也可以是json字符串} b 回调函数的参数
	     * @return {[type]}   [description]
	     */
	    execCallBack: function(a, b) {
	        var params = b || {};
	        if (MyTools.isfun(a)) {
	            a.call(this, params);
	        }
	    },
	    execCB: function(a, err, b) {
	        var params = b || {};
	        if (MyTools.isfun(a)) {
	            a.call(this, err, params);
	        }
	    },
	    isfun: function(a) {
	        if (typeof a === 'function') {
	            return true;
	        }
	    },
	    /**
	     * 获取UUID
	     * 测试：
	     * // var a = 1 + Math.random();
	        // // var b = (a * 0x10000) | 0;
	        // var b = Math.floor(a* 0x10000);
	        // var c = b.toString(8);
	        // var d = c.substring(1);
	        // console.log(a);
	        // console.log(b);
	        // console.log(c);
	        // console.log(d);
	        // console.log(guid3());
	     * @return {[type]} [description]
	     */
	    guid: function() {
	        function S4() {
	            return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
	        }
	        return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4());
	    },
	    getVerifyCode: function() {
	        return (((1 + Math.random()) * 0x10000) | 0).toString(8).substring(2);
	    }
	}
	module.exports = MyTools;


/***/ },
/* 69 */,
/* 70 */
/***/ function(module, exports, __webpack_require__) {

	var __vue_script__, __vue_template__
	__webpack_require__(71)
	__webpack_require__(73)
	__vue_script__ = __webpack_require__(75)
	if (__vue_script__ &&
	    __vue_script__.__esModule &&
	    Object.keys(__vue_script__).length > 1) {
	  console.warn("[vue-loader] src/views/activities.detail.vue: named exports in *.vue files are ignored.")}
	__vue_template__ = __webpack_require__(76)
	module.exports = __vue_script__ || {}
	if (module.exports.__esModule) module.exports = module.exports.default
	if (__vue_template__) {
	(typeof module.exports === "function" ? (module.exports.options || (module.exports.options = {})) : module.exports).template = __vue_template__
	}
	if (false) {(function () {  module.hot.accept()
	  var hotAPI = require("vue-hot-reload-api")
	  hotAPI.install(require("vue"), false)
	  if (!hotAPI.compatible) return
	  var id = "_v-38f82cab/activities.detail.vue"
	  if (!module.hot.data) {
	    hotAPI.createRecord(id, module.exports)
	  } else {
	    hotAPI.update(id, module.exports, __vue_template__)
	  }
	})()}

/***/ },
/* 71 */
/***/ function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(72);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(6)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {
		// When the styles change, update the <style> tags
		if(!content.locals) {
			module.hot.accept("!!./../../node_modules/css-loader/index.js!./../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-38f82cab&scoped=true!./../../node_modules/vue-loader/lib/selector.js?type=style&index=0!./activities.detail.vue", function() {
				var newContent = require("!!./../../node_modules/css-loader/index.js!./../../node_modules/vue-loader/lib/style-rewriter.js?id=_v-38f82cab&scoped=true!./../../node_modules/vue-loader/lib/selector.js?type=style&index=0!./activities.detail.vue");
				if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
				update(newContent);
			});
		}
		// When the module is disposed, remove the <style> tags
		module.hot.dispose(function() { update(); });
	}

/***/ },
/* 72 */
/***/ function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(5)();
	// imports


	// module
	exports.push([module.id, "\n\t.nav1[_v-38f82cab],.nav2[_v-38f82cab]{\n\t\twidth:50%;\n\t\tdisplay:inline-block;\n\t\ttext-align: center;\n\t\tfont-size: 16px;\n\t\theight:44px;\n\t\tline-height: 44px;\n\t\tcolor:#A5A5A5;\n\t\tbackground-color:#FFFFFF;\n\t}\n\t#nav1[_v-38f82cab],#nav2[_v-38f82cab]{\n\t\tdisplay: none;\n\t\twidth: 90%;\n\t\tmargin-left:5%;\n\t}\n\tinput.nav1[_v-38f82cab]{\n\t\tposition: absolute;\n\t\tz-index: 2;\n\t\tleft:0;\n\t\topacity: 0;\n\t}\n\tinput.nav2[_v-38f82cab]{\n\t\tposition: absolute;\n\t\tz-index: 2;\n\t\tleft:50%;\n\t\topacity: 0;\n\t}\n\tinput.nav1:checked ~div.nav1[_v-38f82cab],input.nav2:checked ~div.nav2[_v-38f82cab]{\n\t\tcolor:#FDA648;\n\t\tborder-bottom:2px solid red;\n\t}\n\tinput.nav1:checked ~ div#nav1[_v-38f82cab],input.nav1:checked ~div.baoming[_v-38f82cab],input.nav2:checked ~ div#nav2[_v-38f82cab]{\n\t\tdisplay: block;\n\t}\n\t.detail_head[_v-38f82cab]{\n\t\tposition: relative;\n\t\tmargin-top: 10px;\n\t}\n\t.detail_head>img[_v-38f82cab]{\n\t\tmax-width: 100%;\n\t\tmin-width: 100%;\n\t\tz-index: -1;\n\t}\n\t\n\t.instruction[_v-38f82cab]{\n\t\tposition: absolute;\n\t\tbottom:0;\n\t\tcolor:white;\n\t\tmargin-left:5%;\n\t\tmargin-bottom:15px;\n\t\twidth:90%;\n\t}\n\t.instruction .title[_v-38f82cab]{\n\t\tfont-size: 28px;\n\t}\n\t.instruction .userinfo[_v-38f82cab] {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t}\n\t.instruction .userinfo .name[_v-38f82cab]{\n\t\tfont-size: 16px;\n\t\tfont-weight: 100;\n\t\t\n\t}\n\timg.headimg[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\tvertical-align: middle;\n\t}\n\t.instruction .userinfo .time[_v-38f82cab]{\n\t\tfont-size: 12px;\n\t\tfont-weight: 100;\n\t}\n\t.calling[_v-38f82cab] {\n    position: relative;\n    bottom: -30px;\n    width: 50%;\n    display: inline-block;\n    right: -5.5%;\n    text-align: right;\n\t}\n\t.calling>img[_v-38f82cab]{\n\t\tmax-width: 100%;\n\t\tmin-width: 100%;\n\t}\n\t.contactor[_v-38f82cab]{\n\t\tmargin-top: 20px;\n\t}\n\t.entertime[_v-38f82cab]{\n\t\tmargin-top: 10px;\n\t\tdisplay:inline-block;\n\t}\n\t.cost[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\tmargin-top: 10px;\n\t\tmargin-right: 0;\n\t}\n\t.activityinfobox[_v-38f82cab]{\n\t\tbackground-color:#fff;\n\t\tpadding:10px;\n\t}\n\t.activityinfobox .inner[_v-38f82cab]{\n\t\tbackground-color:#2FBA81;\n\t\tcolor:white;\n\t\tpadding:10px 15px;\n\n\t}\n\t.activityinfobox .inner .route[_v-38f82cab]{\n\t\ttext-align: justify;\n\t\twidth:80%;\n\t\tmargin-left: 10%;\n\t\theight:44px;\n\t}\n\t.activityinfobox .inner hr[_v-38f82cab]{\n\t\tmargin:10px auto;\n\t}\n\t.activityinfobox .inner .start[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\ttext-align: center;\n\t\tvertical-align: middle;\n\t}\n\t.activityinfobox .inner .transport[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\ttext-align: center;\n\t\tvertical-align: middle;\n\t}\n\t.activityinfobox .inner .end[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\ttext-align: center;\n\t\tvertical-align: middle;\n\t}\n\t.activityinfobox .schedule .dateinfo[_v-38f82cab] {\n\t\tposition: relative;\n\t\tmargin-top:5px;\n\t}\n\t.activityinfobox .schedule .dateinfo .date[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t}\n\t.activityinfobox .schedule .dateinfo .take[_v-38f82cab]{\n\t\tposition: absolute;\n\t\tright:0;\n\t\tdisplay:inline-block;\n\t}\n\t.activityinfobox .meetaddr[_v-38f82cab]{\n\t\tmargin-top: 10px;\n\t\tcolor:#939393;\n\t}\n\t.activityinfobox .meettimeandcount[_v-38f82cab]{\n\t\twidth:90%;\n\t\tposition: relative;\n\t\tmargin-top:10px;\n\t\tcolor:#939393;\n\t}\n\t.activityinfobox .meettimeandcount .meettime[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t}\n\t.activityinfobox .meettimeandcount .count[_v-38f82cab]{\n\t\tdisplay:inline-block;\n\t\tposition: absolute;\n\t\tright:0;\n\t}\n\t.jianjie[_v-38f82cab]{\n\t\tbackground-color:#fff;\n\t\tmargin-bottom: 10px;\n\t\tposition: relative;\n\t\tline-height: 44px;\n\t}\n\t.jianjie .nav[_v-38f82cab],.jianjie .head[_v-38f82cab]{\n\t\twidth: 100%;\n\t\theight: 44px;\n\t\ttop:0;\n\t}\n\t.jianjie .nav[_v-38f82cab]{\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\topacity: 0;\n\t}\n\t.jianjie .head[_v-38f82cab]{\n\t\tposition: relative;\n\t\tpadding-left: 10px;\n\t\tpadding-right: 10px;\n\t\ttext-align: justify;\n\t}\n\t.jianjie .title[_v-38f82cab] {\n    display: inline-block;\n    font-size: 16px;\n    color:#FD922A;\n\t}\n\n\t.jianjie img.arrow[_v-38f82cab] {\n    line-height: 44px;\n\t}\n\t.jianjie .content[_v-38f82cab]{\n\t\tpadding-left:10px;\n\t\tline-height: 1.5;\n\t\tdisplay: none;\n\t}\n\t.huodong .nav:checked ~ .content[_v-38f82cab]{\n\t\tdisplay: block;\n\t}\n\t.jianjie hr[_v-38f82cab]{\n\t\tmargin:0;\n\t}\n\t.circles[_v-38f82cab]{\n\t\ttext-align: justify;\n\t\twidth:100%;\n\t\tmargin-top:10px;\n\t}\n\t.circles .circle[_v-38f82cab]{\n\t\tdisplay: inline-block;\n\t\twidth: 32px;\n\t\theight:32px;\n\t\tbackground-color: #FD8C25;\n\t\tborder-radius: 50%;\n\t}\n\t.share[_v-38f82cab]{\n\t\ttext-align: justify;\n\t\twidth:100%;\n\t}\n\t.wechat[_v-38f82cab] {\n\t  display: inline-block;\n\t}\n\n\t.friend[_v-38f82cab] {\n\t  display: inline-block;\n\t  margin-left: 10px;\n\t}\n\t.baoming[_v-38f82cab]{\n\t\tdisplay:none;\n\t\tbackground-color: #FD8C25;\n    color: #fff;\n    width: 100%;\n    height: 64px;\n    line-height: 64px;\n    text-align: center;\n    font-size: 18px;\n\t}\n\t.user[_v-38f82cab]{\n    display: inline-block;\n    width: 50%;\n\t}\n", ""]);

	// exports


/***/ },
/* 73 */
/***/ function(module, exports, __webpack_require__) {

	// style-loader: Adds some css to the DOM by adding a <style> tag

	// load the styles
	var content = __webpack_require__(74);
	if(typeof content === 'string') content = [[module.id, content, '']];
	// add the styles to the DOM
	var update = __webpack_require__(6)(content, {});
	if(content.locals) module.exports = content.locals;
	// Hot Module Replacement
	if(false) {
		// When the styles change, update the <style> tags
		if(!content.locals) {
			module.hot.accept("!!./../../node_modules/css-loader/index.js!./../../node_modules/vue-loader/lib/style-rewriter.js!./../../node_modules/vue-loader/lib/selector.js?type=style&index=1!./activities.detail.vue", function() {
				var newContent = require("!!./../../node_modules/css-loader/index.js!./../../node_modules/vue-loader/lib/style-rewriter.js!./../../node_modules/vue-loader/lib/selector.js?type=style&index=1!./activities.detail.vue");
				if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
				update(newContent);
			});
		}
		// When the module is disposed, remove the <style> tags
		module.hot.dispose(function() { update(); });
	}

/***/ },
/* 74 */
/***/ function(module, exports, __webpack_require__) {

	exports = module.exports = __webpack_require__(5)();
	// imports


	// module
	exports.push([module.id, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\thtml,body{\n        width: 100%;\n        height: 100%;\n        overflow: scroll;\n        margin:0;\n        padding:0;\n        font-size: 16px;\n        background-color:#f4f4f4;\n        -webkit-text-size-adjust:none;\n    }\n", ""]);

	// exports


/***/ },
/* 75 */
/***/ function(module, exports, __webpack_require__) {

	"use strict";

	var _stringify = __webpack_require__(10);

	var _stringify2 = _interopRequireDefault(_stringify);

	var _defineProperty2 = __webpack_require__(41);

	var _defineProperty3 = _interopRequireDefault(_defineProperty2);

	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

	var storage = window.localStorage;
	var activities = JSON.parse(storage.getItem("activities"));
	module.exports = {
		data: function data() {
			return {
				activity: (0, _defineProperty3.default)({

					ownerInfo: {},
					time: {},
					contact: {},
					address: {},
					charge: {},
					placeInfo: {}
				}, "ownerInfo", {})
			};
		},
		methods: {
			enroll: function enroll() {
				this.$router.go({ name: "enroll", params: { id: this.activity._id } });
				storage.setItem("activity", (0, _stringify2.default)(this.activity));
			}
		},
		ready: function ready() {
			var jssdk = __webpack_require__(67);
			jssdk(this);
			var vue = this;
			var index = this.$route.params.index;
			vue.activity = activities[index];
		}
	};

/***/ },
/* 76 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<input type=\"radio\" class=\"nav1\" name=\"nav\" checked=\"checked\" _v-38f82cab=\"\"><div class=\"nav1\" _v-38f82cab=\"\">基本信息</div><!-- \n --><input type=\"radio\" class=\"nav2\" name=\"nav\" _v-38f82cab=\"\"><div class=\"nav2\" _v-38f82cab=\"\">直播</div>\n<div id=\"nav1\" _v-38f82cab=\"\">\n\t<div class=\"detail_head\" _v-38f82cab=\"\">\n\t\t<img src=\"" + __webpack_require__(77) + "\" _v-38f82cab=\"\">\n\t\t<div class=\"instruction\" _v-38f82cab=\"\">\n\t\t\t<div class=\"title\" _v-38f82cab=\"\">{{activity.name}}</div>\n\t\t\t<div class=\"user\" _v-38f82cab=\"\">\n\t\t\t\t<img :src=\"activity.ownerInfo.headimgurl\" height=\"28\" width=\"28\" alt=\"\" class=\"headimg\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"userinfo\" _v-38f82cab=\"\">\n\t\t\t\t\t<div class=\"name\" _v-38f82cab=\"\">{{activity.ownerInfo.nickname}}</div>\n\t\t\t\t\t<div class=\"time\" _v-38f82cab=\"\">\n\t\t\t\t\t\t<span class=\"glyphicon glyphicon-time\" _v-38f82cab=\"\"></span>\n\t\t\t\t\t\t<span _v-38f82cab=\"\">昨天</span>\n\t\t\t\t\t\t<span _v-38f82cab=\"\">12:20</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<i style=\"display:inline-block;width:0;height:100%;vertical-align:middle;\" _v-38f82cab=\"\"></i>\n\t\t\t</div><!-- \n\t\t\t --><div class=\"calling\" _v-38f82cab=\"\">\n\t\t\t\t<img src=\"" + __webpack_require__(66) + "\" alt=\"\" id=\"calling\" _v-38f82cab=\"\">\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"contactor\" _v-38f82cab=\"\">\n\t\t<img src=\"" + __webpack_require__(78) + "\" height=\"16\" width=\"16\" alt=\"\" _v-38f82cab=\"\">\n\t\t<span style=\"color:#5F5959\" _v-38f82cab=\"\">联系人</span>\n\t\t<span style=\"margin-left:5px;margin-right:5px;color:#FC942D\" _v-38f82cab=\"\">{{activity.contact.name}}</span>\n\t\t<span style=\"color:#FC942D\" _v-38f82cab=\"\">{{activity.contact.phone}}</span>\n\t</div>\n\t<div style=\"width:100%;text-align:justify;\" _v-38f82cab=\"\">\n\t\t<div class=\"entertime\" _v-38f82cab=\"\">\n\t\t\t<img src=\"" + __webpack_require__(79) + "\" height=\"16\" width=\"16\" alt=\"\" _v-38f82cab=\"\">\n\t\t\t<span style=\"color:#5F5959\" _v-38f82cab=\"\">报名截止</span>\n\t\t\t<span style=\"color:#FC942D;margin-left:5px;\" _v-38f82cab=\"\">{{activity.time.signupTime}}</span>\n\t\t</div>\n\t\t<div class=\"cost\" _v-38f82cab=\"\">\n\t\t\t<img src=\"" + __webpack_require__(80) + "\" height=\"16\" width=\"16\" alt=\"\" _v-38f82cab=\"\">\n\t\t\t<span style=\"color:#5F5959\" _v-38f82cab=\"\">活动费用</span>\n\t\t\t<span style=\"color:#FC942D;margin-left:5px;\" _v-38f82cab=\"\">{{activity.charge.chargeType}}</span>\n\t\t</div>\n\t\t<i style=\"display:inline-block;width:100%;height:0;\" _v-38f82cab=\"\"></i>\n\t</div>\n\t<div class=\"activityinfobox\" _v-38f82cab=\"\">\n\t\t<div class=\"inner\" _v-38f82cab=\"\">\n\t\t\t<div class=\"route\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"start\" _v-38f82cab=\"\">\n\t\t\t\t\t<div style=\"font-size:12px;font-weight:100\" _v-38f82cab=\"\">出发地</div>\n\t\t\t\t\t<div style=\"font-size:12px;font-weight:100\" _v-38f82cab=\"\">{{activity.address.start}}</div>\n\t\t\t\t</div>\n\t\t\t\t<img src=\"" + __webpack_require__(81) + "\" height=\"8\" width=\"25\" alt=\"\" class=\"transport\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"end\" _v-38f82cab=\"\">\n\t\t\t\t\t<div style=\"font-size:12px;font-weight:lighter\" _v-38f82cab=\"\">露营地</div>\n\t\t\t\t\t<div style=\"font-size:12px;font-weight:lighter\" _v-38f82cab=\"\">{{activity.address.end}}</div>\n\t\t\t\t</div><!-- \n\t\t\t\t\n\t\t\t\t --><i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"schedule\" _v-38f82cab=\"\">\n\t\t\t\t<div style=\"font-size:12px;\" _v-38f82cab=\"\">行程日程</div>\n\t\t\t\t<div class=\"dateinfo\" style=\"font-size:12px;\" _v-38f82cab=\"\">\n\t\t\t\t\t<div class=\"date\" _v-38f82cab=\"\">\n\t\t\t\t\t\t<span _v-38f82cab=\"\">{{activity.time.activitystart}}</span>\n\t\t\t\t\t\t<span _v-38f82cab=\"\">至</span>\n\t\t\t\t\t\t<span _v-38f82cab=\"\">{{activity.time.activityend}}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"take\" _v-38f82cab=\"\">\n\t\t\t\t\t\t<span _v-38f82cab=\"\">2天</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"meetaddr\" _v-38f82cab=\"\">\n\t\t\t<span style=\"font-size:12px;\" _v-38f82cab=\"\">集合地点:</span><span style=\"font-size:14px;margin-left:5px;\" _v-38f82cab=\"\">{{activity.address.rendezvous}}</span>\n\t\t</div>\n\t\t<div class=\"meettimeandcount\" _v-38f82cab=\"\">\n\t\t\t<div class=\"meettime\" _v-38f82cab=\"\">\n\t\t\t\t<span style=\"font-size:12px;\" _v-38f82cab=\"\">集合时间:</span>\n\t\t\t\t<span style=\"margin-left:5px;font-weight:lighter\" _v-38f82cab=\"\">9:00</span>\n\t\t\t\t<span style=\"font-weight:lighter\" _v-38f82cab=\"\">AM</span></div>\n\t\t\t<div class=\"count\" _v-38f82cab=\"\">\n\t\t\t\t<span style=\"font-size:12px;\" _v-38f82cab=\"\">预约人数:</span><span style=\"margin-left:5px;font-weight:lighter\" _v-38f82cab=\"\">{{activity.membercount}}人</span>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<hr _v-38f82cab=\"\">\n\t<div class=\"huodong\" _v-38f82cab=\"\">\n\t\t<div class=\"jianjie\" _v-38f82cab=\"\">\n\t\t\t<input type=\"radio\" name=\"huodong_nav\" class=\"nav\" checked=\"checked\" _v-38f82cab=\"\">\n\t\t\t<div class=\"head\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"title\" _v-38f82cab=\"\">【简介】</div>\n\t\t\t\t<img src=\"" + __webpack_require__(82) + "\" height=\"12\" width=\"21\" class=\"arrow\" _v-38f82cab=\"\">\n\t\t\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"content\" _v-38f82cab=\"\">\n\t\t\t\t{{activity.placeInfo.desc}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"jianjie\" _v-38f82cab=\"\">\n\t\t\t<input type=\"radio\" name=\"huodong_nav\" class=\"nav\" _v-38f82cab=\"\">\n\t\t\t<div class=\"head\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"title\" _v-38f82cab=\"\">【行程安排】</div>\n\t\t\t\t<img src=\"" + __webpack_require__(82) + "\" height=\"12\" width=\"21\" class=\"arrow\" _v-38f82cab=\"\">\n\t\t\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"content\" _v-38f82cab=\"\">\n\t\t\t\t{{activity.plan}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"jianjie\" _v-38f82cab=\"\">\n\t\t\t<input type=\"radio\" name=\"huodong_nav\" class=\"nav\" _v-38f82cab=\"\">\n\t\t\t<div class=\"head\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"title\" _v-38f82cab=\"\">【个人装备】</div>\n\t\t\t\t<img src=\"" + __webpack_require__(82) + "\" height=\"12\" width=\"21\" class=\"arrow\" _v-38f82cab=\"\">\n\t\t\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"content\" _v-38f82cab=\"\">\n\t\t\t\t{{activity.equipment}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"jianjie\" _v-38f82cab=\"\">\n\t\t\t<input type=\"radio\" name=\"huodong_nav\" class=\"nav\" _v-38f82cab=\"\">\n\t\t\t<div class=\"head\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"title\" _v-38f82cab=\"\">【注意事项】</div>\n\t\t\t\t<img src=\"" + __webpack_require__(82) + "\" height=\"12\" width=\"21\" class=\"arrow\" _v-38f82cab=\"\">\n\t\t\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"content\" _v-38f82cab=\"\">\n\t\t\t\t{{activity.tips}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"jianjie\" _v-38f82cab=\"\">\n\t\t\t<input type=\"radio\" name=\"huodong_nav\" class=\"nav\" _v-38f82cab=\"\">\n\t\t\t<div class=\"head\" _v-38f82cab=\"\">\n\t\t\t\t<div class=\"title\" _v-38f82cab=\"\">【免责申明】</div>\n\t\t\t\t<img src=\"" + __webpack_require__(82) + "\" height=\"12\" width=\"21\" class=\"arrow\" _v-38f82cab=\"\">\n\t\t\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t\t\t</div>\n\t\t\t<hr _v-38f82cab=\"\">\n\t\t\t<div class=\"content\" _v-38f82cab=\"\">\n\t\t\t\t{{activity.statement}}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<hr style=\"margin-bottom:0;\" _v-38f82cab=\"\">\n\t<div class=\"yibaomingrenshu\" _v-38f82cab=\"\">\n\t\t<span _v-38f82cab=\"\">已报名人数:</span><span style=\"margin-left:5px;\" _v-38f82cab=\"\">{{activity.membercount}}人</span>\n\t</div>\n\t<div class=\"circles\" _v-38f82cab=\"\">\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<div class=\"circle\" _v-38f82cab=\"\"></div>\n\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t</div>\n\t<div class=\"share\" _v-38f82cab=\"\">\n\t\t<div style=\"display:inline-block\" _v-38f82cab=\"\">分享至:</div>\n\t\t<div style=\"display:inline-block\" _v-38f82cab=\"\">\n\t\t\t<div class=\"wechat\" _v-38f82cab=\"\">\n\t\t\t\t<img src=\"" + __webpack_require__(83) + "\" width=\"32\" height=\"32\" _v-38f82cab=\"\">\n\t\t\t\t<span _v-38f82cab=\"\">微信好友</span>\n\t\t\t</div>\n\t\t\t<div class=\"friend\" _v-38f82cab=\"\">\n\t\t\t\t<img src=\"" + __webpack_require__(84) + "\" width=\"32\" height=\"32\" _v-38f82cab=\"\">\n\t\t\t\t<span _v-38f82cab=\"\">朋友圈</span>\n\t\t\t</div>\n\t\t</div>\n\t\t<i style=\"display:inline-block;width:100%;height:0\" _v-38f82cab=\"\"></i>\n\t</div>\n</div>\n<div class=\"baoming\" @click=\"enroll\" _v-38f82cab=\"\">我要报名</div>\n<div id=\"nav2\" _v-38f82cab=\"\">nav2</div>\n";

/***/ },
/* 77 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/detail_head.png";

/***/ },
/* 78 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/contactor.png";

/***/ },
/* 79 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/eye.png";

/***/ },
/* 80 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/mountain.png";

/***/ },
/* 81 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/tranport.png";

/***/ },
/* 82 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/activities/arrow_down.png";

/***/ },
/* 83 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/detail/detail_wechat.png";

/***/ },
/* 84 */
/***/ function(module, exports, __webpack_require__) {

	module.exports = __webpack_require__.p + "src/resource/images/detail/detail_frient_circle.png";

/***/ }
]);